package helpers.grupo.recurso;

import helpers.Helper;
import cliente.pagina.*;
import comun.constantes.*;
import server.aula.ControlAula;
import server.grupo.*;
import utils.EnviarMailGmail;
import utils.UtilsEnvioMail;
import persistencia.dominio.*;

import java.util.*;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */

public class HelperSumarioGrupos extends Helper{

	private String espacios_2 = "\t\t\t&nbsp;&nbsp;";

  public HelperSumarioGrupos(Pagina pagina) {
    super(pagina);
  }


  /**
   * genera el codigo HTML del sumario
 * @throws Exception 
   * **/
  public String getHTMLSumario() throws Exception{
	  	String html = "";
	  	html += this.getHTMLFormulario();
	    html += this.getHTMLGruposDelSumario();
		html += "\t   </fieldset>\n";
		html += this.getHTMLBotones();
		html += "\t   </form>\n";
		html += "\t</div>\n";
	    return html;
}

  private String getHTMLFormulario(){
	  	String html = "";
		html += "\n\t<div id=\"sumarioGrupos\">\n";
		//Controlar con el atributo ESTADO de la session para saber donde ir, si a grupos.jsp, o grupos_borradores.jsp
		
		html += "\t  <form method=\"post\" name=\"form1\" id=\"form1\" action=\"\">\n";
	    html += "\t   <fieldset>\n";
	    html += "\t     <legend>Sumario</legend>\n";
	    return html;
}

  private String getHTMLGruposDelSumario() throws Exception{

	  String html = "";
	  utils.UtilsEnvioMail utilsEnvioMail = new UtilsEnvioMail();
	  
	  html += utilsEnvioMail.getHTMLDialog("Enviar mensaje", "", "Enviar mensaje",this.pagina,"form1");
	  html += utilsEnvioMail.getHTMLDialogCierre("Resultado del env&iacute;o", "Enviando mensaje", "",this.pagina);
	  
	 /* html += "\t\t<label>Exportar a: </label>\n";

	  html += "\t\t<img src=\""+this.pagina.getPathRaiz()+"imagenes/imagenesNJ/archivo_cvs.gif\" title=\"Archivo CVS\" width=\"16\" height=\"16\"/>\n" +
	  		"\t\t  <a href=\""+this.pagina.getPathPaginas()+"grupo_confirma_operacion.jsp?"+this.getHTMLParametros()+"\">Archivo CVS</a>\n";
	  html += espacios_2;

	  html += "\t\t<img src=\""+this.pagina.getPathRaiz()+"imagenes/imagenesNJ/archivo_texto.gif\" title=\"Archivo Texto\" width=\"16\" height=\"16\"/>\n" +
	  		"\t\t  <a href=\""+this.pagina.getPathPaginas()+"grupo_confirma_operacion.jsp?"+this.getHTMLParametros()+"\">Archivo de Texto</a>\n";
	  html += espacios_2;
	  html += "\t\t<img src=\""+this.pagina.getPathRaiz()+"imagenes/imagenesNJ/archivo_xls.gif\" title=\"Archivo XLS\" width=\"16\" height=\"16\"/>\n" +
	  		"\t\t  <a href=\""+this.pagina.getPathPaginas()+"grupo_confirma_operacion.jsp?"+this.getHTMLParametros()+"\">Archivo XLS</a>\n";
	  html += espacios_2;
	  html += "\t\t<img src=\""+this.pagina.getPathRaiz()+"imagenes/imagenesNJ/archivo_pdf.gif\" title=\"Archivo PDF\" width=\"16\" height=\"16\"/>\n" +
	  		"\t\t  <a href=\""+this.pagina.getPathPaginas()+"grupo_confirma_operacion.jsp?"+this.getHTMLParametros()+"\">Archivo PDF</a>\n";
	  html += espacios_2;
	  html += "\t\t<img src=\""+this.pagina.getPathRaiz()+"imagenes/imagenesNJ/printmgr.gif\" title=\"Imprimir\" width=\"16\" height=\"16\"/>\n" +
	  		"\t\t  <a href=\""+this.pagina.getPathPaginas()+"grupo_confirma_operacion.jsp?"+this.getHTMLParametros()+"\">imprimir</a>\n";*/
	  
		  //recorro cada grupo y muestro los participantes de cada grupo
		  Vector grupos;//Objetos de tipo "Grupo"
		  boolean intercomision = ((Boolean)this.pagina.getSession().getAttribute(PARAMETROS_PAGINAS.INTERCOMISION)).booleanValue();
		  ControlGrupo controlGrupo = new ControlGrupo(this.persistencia);
		  if(intercomision){
			  if(((String)this.pagina.getSession().getAttribute(PARAMETROS_PAGINAS.ESTADO_GRUPOS)).compareTo(ESTADO_GRUPOS.FINALIZADO)==0){
				  grupos = controlGrupo.getGruposDelAula(this.pagina.getIdAula(), ESTADO_GRUPOS.FINALIZADO,false);
			  }else if(((String)this.pagina.getSession().getAttribute(PARAMETROS_PAGINAS.ESTADO_GRUPOS)).compareTo(ESTADO_GRUPOS.BORRADOR)==0){
				  grupos = controlGrupo.getGruposDelAula(this.pagina.getIdAula(), ESTADO_GRUPOS.BORRADOR,false);
			  }else if(((String)this.pagina.getSession().getAttribute(PARAMETROS_PAGINAS.ESTADO_GRUPOS)).compareTo(ESTADO_GRUPOS.ELIMINADO)==0){
				  grupos = controlGrupo.getGruposDelAula(this.pagina.getIdAula(), ESTADO_GRUPOS.ELIMINADO,false);
		  	  }else{
		  		grupos = controlGrupo.getGruposDelAula(this.pagina.getIdAula(), ESTADO_GRUPOS.VISIBLE,false);
				//grupos.addAll(controlGrupo.getGruposDelAula(this.pagina.getIdAula(), ESTADO_GRUPOS.NO_VISIBLE));
			  }
		  }else{
			  if(((String)this.pagina.getSession().getAttribute(PARAMETROS_PAGINAS.ESTADO_GRUPOS)).compareTo(ESTADO_GRUPOS.FINALIZADO)==0){
				  grupos = controlGrupo.getGruposDeLaComision(this.pagina.getIdComision(), this.pagina.getIdAula(),ESTADO_GRUPOS.FINALIZADO);
		  	  }else if(((String)this.pagina.getSession().getAttribute(PARAMETROS_PAGINAS.ESTADO_GRUPOS)).compareTo(ESTADO_GRUPOS.BORRADOR)==0){
		  		  grupos = controlGrupo.getGruposDeLaComision(this.pagina.getIdComision(),this.pagina.getIdAula(), ESTADO_GRUPOS.BORRADOR);
		  	  }else if(((String)this.pagina.getSession().getAttribute(PARAMETROS_PAGINAS.ESTADO_GRUPOS)).compareTo(ESTADO_GRUPOS.ELIMINADO)==0){
		  		  grupos = controlGrupo.getGruposDeLaComision(this.pagina.getIdComision(),this.pagina.getIdAula(), ESTADO_GRUPOS.ELIMINADO);
		  	  }else{
				  grupos = controlGrupo.getGruposDeLaComision(this.pagina.getIdComision(),this.pagina.getIdAula(), ESTADO_GRUPOS.VISIBLE);
				  //grupos.addAll(controlGrupo.getGruposDeLaComision(this.pagina.getIdComision(), ESTADO_GRUPOS.NO_VISIBLE));
			  }
		  }
		  //html += "\t\t<div id=\"ListadoGruposConIntegrantes\">\n";

		  String nombreGrupo = "";
		  Vector nombreGrupos = new Vector();
		  Vector nombreIntegrantes = new Vector();
		  boolean permisoCorreo = false;
		  ControlAula controlAula = new ControlAula(this.persistencia);
		  boolean permisoCorreoLogueado = false;//por ahora no lo uso, pasa que copie la idea de contactos...
		  Persona usuario = usuario = (Persona)persistencia.getObjectoPorId("persistencia.dominio.Persona",this.pagina.getIdPersona());
		  String tipoUsuarioLogueado = controlAula.getParticipante(this.pagina.getIdAula(),pagina.getIdPersona()).getTipoUsuario().getNombre();
		  permisoCorreoLogueado = this.obtenerPermisoRecurso(RECURSOS.CORREO,tipoUsuarioLogueado,new Boolean(intercomision)).compareTo(TIPO_PERMISOS.NINGUNO)!=0;
		  Enumeration enume = grupos.elements();
		  ControlParticipanteGrupo controlParticipanteGrupo = new ControlParticipanteGrupo(persistencia);
		  while (enume.hasMoreElements()) {
		       Grupo grupo = (Grupo)enume.nextElement();
		       nombreGrupo = grupo.getNombre();
		       System.out.println("Id del grupo..................................."+grupo.getId());

		       html += "\t\t   <h4>"+nombreGrupo+"</h4>\n";
		       html += "\t\t   <div id=\"tablaGris\">\n";
	 		   html += "\t\t     <table width=\"570\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> \n";
	 		   html += "\t\t\t<tr>\n";
	 		   html += "\t\t\t<th>N&ordm;</th>\n";//<div align=\"center\"></div>
	 		   html += "\t\t\t<th>Tipo Usuario</th>\n";
	 		   html += "\t\t\t<th>Nombre y Apellido</th>\n";
	 		   html += "\t\t\t<th>E-mail</th>\n";
	 		   html += "\t\t\t</tr>\n";
		       Vector participantes = controlParticipanteGrupo.getPersonaRolGrupo(grupo.getId(),null);
		       int cont = 1;
		       for (Iterator iter = participantes.iterator(); iter.hasNext();) {
		    	   ParticipanteComision pc = (ParticipanteComision) iter.next();
		    	   System.out.println("Id del participanteComision......................................"+pc.getId());
		    	   Participante participante = pc.getParticipante();
		    	   System.out.println("Id del participante.................."+participante.getId());
		    	   String tipoUsuario = null;
		  	       try{
		  	    	   tipoUsuario = participante.getTipoUsuario().getNombre();
		  	       }catch (Exception ex) {
			  	       ex.printStackTrace();
			  	       tipoUsuario = "";
		  	       }
		  	       String mailPersona = "";
			       permisoCorreo = this.obtenerPermisoRecurso(RECURSOS.CORREO,tipoUsuario,new Boolean(intercomision)).compareTo(TIPO_PERMISOS.NINGUNO)!=0;
			       if (permisoCorreo)
			    	   mailPersona = participante.getPersona().getLoginMail()+server.Singleton.DOMINIO_MAIL_EAD;
			       else
			       mailPersona = participante.getPersona().getEmail();
		    	   html += "\t\t\t<tr>\n";
		    	   html += "\t\t\t<td>\n";
		    	   html += "\t\t\t  "+cont+"\n";//<div align=\"center\"></div>
		    	   html += "\t\t\t</td>\n";
		    	   html += "\t\t\t<td>\n";
		    	   html += "\t\t\t  "+this.pagina.nomenclaturaOTipoUsuario(pc.getTipoUsuario().getNombre(),pc.getTipoUsuario().getNombre(),false,false)+"\n";
		    	   html += "\t\t\t</td>\n";
		    	   html += "\t\t\t<td>\n";
		    	   String ruta = "grupo/";
		    	   if(intercomision)ruta = "comision/"+ruta;
		    	   html += "\t\t\t  <img src=\""+this.pagina.getPathRaiz()+"imagenes/imagenesNJ/members.gif\" title=\"Ver Perfil\" width=\"12\" height=\"12\"/>\n" +

				 		  "\t\t\t    <a href=\""+ruta+"grupo_perfil_integrante.jsp?"+this.getHTMLParametros()+
				 		  "&"+PARAMETROS_PAGINAS.DONDE_VOLVER+"="+DONDE_VOLVER.SUMARIO_GRUPO+
				 		 "&"+PARAMETROS_PAGINAS.ID_GRUPO+"="+grupo.getId()+
				 		 "&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+participante.getPersona().getId()+"\">"+participante.getPersona().getNombreYApellido()+" - "+tipoUsuario+"</a>\n";
		    	   html += "\t\t\t</td>\n";
		    	   html += "\t\t\t<td>\n";
		    	   if (permisoCorreoLogueado)
		    	     html += "\t\t\t  <a href=\"#\" onClick=unDestinoGmail('"+mailPersona+"','"+ACCIONES_A_REALIZAR.ENVIAR_MAIL_UN_DESTINO+"');>"+mailPersona+"</a>\n";
		    	   //html += "\t\t\t  <a href=\"#\" onClick=abrirPaginaParametros('http://siat.unrc.edu.ar/horde/imp/index.php3?curso=0&usernico="+usuario.getLoginMail()+"&pswnico="+usuario.getClaveMail()+"&paranico="+mailPersona+"','600','530');>"+mailPersona+"</a>\n";
		    	   //onClick=unDestinoGmail('"+mail+"','"+ACCIONES_A_REALIZAR.ENVIAR_MAIL_UN_DESTINO+"');
		    	   else
		    	     html += "\t\t\t  <a href=\"#\">" +mailPersona+"</a>\n";
		    	   html += "\t\t\t</td>\n";
		    	   html += "\t\t\t</tr>\n";
		    	   //html += "\t\t\t<br>\n";
		    	   cont++;
		    	   nombreIntegrantes.add(participante.getPersona().getNombreYApellido());
		       }
		       html += "\t\t     </table>\n";
		       html += "\t\t   </div>\n";//tablaGris
		       this.pagina.getSession().setAttribute(PARAMETROS_PAGINAS.NOMBRES_Y_APELLIDOS_PARTICIPANTES_GRUPOS+nombreGrupo,nombreIntegrantes);
		       nombreGrupos.add(grupo.getNombre());
		  }

		  this.pagina.getSession().setAttribute(PARAMETROS_PAGINAS.NOMBRES_GRUPOS,nombreGrupos);
		  return html;
  }

  protected String getHTMLBotones(){
		String html = "";
		String estado = ((String)this.pagina.getSession().getAttribute(PARAMETROS_PAGINAS.ESTADO_GRUPOS));
		String donde = "";
		 if(estado.compareTo(ESTADO_GRUPOS.BORRADOR)==0)
		 	donde = "_borradores";
		 else if(estado.compareTo(ESTADO_GRUPOS.ELIMINADO)==0)
			 	donde = "_eliminados";
		 else if(estado.compareTo(ESTADO_GRUPOS.FINALIZADO)==0)
			 	donde = "_finalizados";
		 
		html += "\t\t<div id=\"botonesNJ\" align=\"center\">\n";
		html += "<br>";
		html+= "		<input name=\""+PARAMETROS_PAGINAS.NOMBRE_BOTONES+"\" type=\"button\" " +
								" onClick=\"realizaSubmit('"+this.pagina.getPathPaginas()+"grupo"+donde+".jsp?"+this.getHTMLParametros()+"',this.form)\" " +
								" class=\"boton\" value=\""+ACCIONES_A_REALIZAR.VOLVER+"\" />\n";
		html += "\t\t</div>\n";
		return html;
}

  private String getHTMLParametros(){
	  return PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.SUMARIO_DE_GRUPOS;//+"&"+PARAMETROS_PAGINAS.REFRESH+"="+new Long((new java.util.Date()).getTime());

  }
  
  /**
	 * Genera el html para enviar el mail al contacto elegido
	 * @return
	 * @throws Exception
	 */
	public String generarHTMLEnviarMailAUnDestinoGmail() throws Exception{
		Persona usuario = (Persona)persistencia.getObjectoPorId("persistencia.dominio.Persona",this.pagina.getIdPersona());
		String mailUsuario = usuario.getLoginMail()+server.Singleton.DOMINIO_MAIL_EAD;

		String asunto = this.pagina.getParameter(PARAMETROS_PAGINAS.ASUNTO_GMAIL);
		String mensaje = this.pagina.getParameter(PARAMETROS_PAGINAS.MENSAJE_GMAIL);
		String destino = this.pagina.getParameter("cuentaDestinatarioGmail");

		EnviarMailGmail enviarMailGmail = new EnviarMailGmail();
		return enviarMailGmail.enviandoMail(true, destino, asunto, mensaje, mailUsuario);

	}

}

